package com.gc.sql.test;

public abstract class Expression extends Object {
    public static ExpressionValue create (Value value) {
        return new ExpressionValue (value);
    }
        static class ExpressionValue extends Expression {
            private Value value;
            public ExpressionValue(Value value) {
                this.value = value;
            }
            
            @Override
            public String toString() {
                return String.valueOf(value);
            }
        
        }
    public static ExpressionOperationInExpression create (OperationInExpression operationInExpression) {
        return new ExpressionOperationInExpression (operationInExpression);
    }
        static class ExpressionOperationInExpression extends Expression {
            private OperationInExpression operationInExpression;
            public ExpressionOperationInExpression(OperationInExpression operationInExpression) {
                this.operationInExpression = operationInExpression;
            }
            
            @Override
            public String toString() {
                return String.valueOf(operationInExpression);
            }
        
        }
    public static ExpressionNestedExpression create (NestedExpression nestedExpression) {
        return new ExpressionNestedExpression (nestedExpression);
    }
        static class ExpressionNestedExpression extends Expression {
            private NestedExpression nestedExpression;
            public ExpressionNestedExpression(NestedExpression nestedExpression) {
                this.nestedExpression = nestedExpression;
            }
            
            @Override
            public String toString() {
                return String.valueOf(nestedExpression);
            }
        
        }

}
